home *** CD-ROM | disk | FTP | other *** search
/ The 640 MEG Shareware Studio 2 / The 640 Meg Shareware Studio CD-ROM Volume II (Data Express)(1993).ISO / door / r174chtr.zip / RSB5CHTR.MRG < prev    next >
Text File  |  1992-07-27  |  22KB  |  533 lines

  1. * ------------[ BLED merge (c) Ken Goosens ]-------------
  2. * Merge this against D:\1740704\RBBSSUB5.BAS to produce D:\SOURCE\RBBSSUB5.BAS
  3. * D:\1740704\RBBSSUB5.BAS:  Date 7-26-1992  Size 116575 bytes
  4. * ------------[ Created 07-27-1992 00:13:16 ]------------
  5. * REPLACING old line(s) by new
  6. 63630 ' * Sets the user preferences based on user record.
  7.       ' * Formerly in RBBS-PC.BAS
  8.       SUB SetUserPref STATIC
  9.       IF ZWasA THEN _
  10.          ZUserSecLevel = ZSysopSecLevel _
  11.       ELSE ZUserSecLevel = CVI(ZSecLevel$)
  12.       ZBankTime = ASC(ZBankTime$)
  13.       ZLastMsgRead = CVI(MID$(ZUserOption$,3,2))
  14.       ZUserXferDefault$ = MID$(ZUserOption$,5,1)
  15.       IF ZUserXferDefault$ = " " THEN _
  16.          ZUserXferDefault$ = "N"
  17.       CALL XferType (2,ZTrue)
  18.       WasX = ASC(MID$(ZUserOption$,6,1))
  19.       ZWasGR = (WasX MOD 3)
  20.       ZBoldText$ = CHR$(48 - (WasX > 50))
  21.       ZUserTextColor = (WasX - ZWasGR)/3 + 21
  22.       IF ZUserTextColor > 37 THEN _
  23.          ZUserTextColor = ZUserTextColor - 7
  24.       IF ZEmphasizeOff$ <> "" THEN _
  25.          CALL QuickTPut (ZColorReset$,0)
  26.       IF ZEmphasizeOnDef$ <> "" THEN _
  27.          ZEmphasizeOff$ = ZEscape$ + "[" + ZBoldText$ + ";40;" + MID$(STR$(ZUserTextColor),2) + "m" _
  28.       ELSE ZEmphasizeOff$ = ""
  29.       IF ZWasGR = 1 AND NOT ZEightBit THEN _
  30.          ZWasGR = 0
  31.       CALL SetGraphic (ZWasGR)
  32.       ZRightMargin = CVI(MID$(ZUserOption$,7,2))
  33.       IF ZRightMargin > 72 THEN _
  34.          ZRightMargin = 72
  35.       IF NOT ZConfMode THEN _
  36.          ZWasCI$ = ZCityState$ : _
  37.          CALL Trim (ZWasCI$)
  38.       UserOptions = CVI(MID$(ZUserOption$,9,2))
  39.       ZPromptBell = (UserOptions AND 1) > 0
  40.       ZExpertUser = (UserOptions AND 2) > 0
  41.       CALL SetExpert
  42.       ZNulls = (UserOptions AND 4) > 0
  43.       ZUpperCase = (UserOptions AND 8) > 0
  44.       ZLineFeeds = (UserOptions AND 16) > 0
  45.       ZCheckBulletLogon = (UserOptions AND 32) > 0
  46.       ZSkipFilesLogon = (UserOptions AND 64) > 0
  47.       ZAutoDownDesired = (UserOptions AND 128) > 0
  48.       ZReqQuesAnswered = (UserOptions AND 256) > 0
  49.       ZMailWaiting = (UserOptions AND 512) > 0
  50.       WasX = (UserOptions AND 1024 ) > 0
  51.       CALL SetHiLite (NOT WasX)
  52.       IF NOT ZHiLiteOff THEN _
  53.          CALL QuickTPut (ZEmphasizeOff$,0)
  54.       ZTurboKeyUser = (UserOptions AND 2048) > 0
  55.       ZTurboKey = ZFalse
  56. * ------[ first line different ]------
  57.       ZAvailableForChat = (UserOptions AND 4096) > 0                 ' CHT
  58.       CALL SetRegDisplay
  59.       ZPageLength = ASC(MID$(ZUserOption$,13,1))
  60.       IF ZSubBoard THEN _
  61.          GOTO 63632
  62.       WasX$ = ZEchoer$
  63.       ZEchoer$ = MID$(ZUserOption$,14,1)
  64.       IF INSTR("ICR",ZEchoer$) = 0 THEN _
  65.          ZEchoer$ = "R"
  66.       IF WasX$ <> ZEchoer$ THEN _
  67.          CALL ReportEcho
  68.       CALL SetEcho (ZEchoer$)
  69. * INSERTING new line(s)
  70. 63680 ' $SUBTITLE: 'LogNewForChat - Save user info for chat'
  71. ' $PAGE
  72. '
  73. '  NAME    -- LogNewForChat
  74. '
  75. '
  76. '  OUTPUTS -- Updates the node record in CHAT.LOG with this users
  77. '             name and chat activity (always "I") when the user logs on.
  78. '
  79. '  PURPOSE -- See above OUTPUTS
  80. '
  81.       SUB LogNewForChat(ZMaxnodes) STATIC
  82.       FileName$ = "CHAT.LOG"                                         'CHT101201
  83.       CALL FindItX (FileName$, 9)
  84.       IF NOT ZOK THEN
  85.          CALL OpenWrk9 (FileName$)
  86.          FIELD 9, 128 AS TempNode$
  87.          LSET TempNode$ = SPACE$(128)
  88.          FOR Index = 1 TO ZMaxNodes
  89.             CALL LockIt9 (Index, ZFalse)
  90.          NEXT
  91.       END IF
  92.       ChatIndex = ZNodeRecIndex - 1
  93.       CLOSE 9
  94.       CALL OpenWrk9 (FileName$)
  95.       FIELD 9, 1 AS ChatActivity$, _
  96.                2 AS PagingNode$,   _
  97.                2 AS PrivateFor$,   _
  98.               72 AS ChatInput$,    _
  99.               10 AS ChatName$,     _
  100.                1 AS InFullScreenChat$
  101.       CALL LockIt9 (ChatIndex, ZTrue)
  102.       LSET ChatActivity$ = "I"    ' I means inactive
  103.       LSET PagingNode$ = MKI$(0)
  104.       LSET ChatName$ = SPACE$(31)
  105.       IF ZFirstName$ = ZSysopPswd1$  THEN                       'CHT101401
  106.          LSET ChatName$ = "SYSOP"
  107.        ELSE
  108.          LSET ChatName$ = ZFirstName$                                'CHT101401
  109.       END IF
  110.       LSET ChatInput$ = SPACE$(72)
  111.       LSET PrivateFor$ = MKI$(0)
  112.       LSET InFullScreenChat$ = "I"
  113.       CALL LockIt9 (ChatIndex, ZFalse)
  114.       CLOSE 9
  115.       END SUB
  116. 63685 ' $SUBTITLE: 'CBCHECK - Check for a page attempt'
  117. ' $PAGE
  118. '
  119. '  NAME    -- CBCHECK
  120. '
  121. '  INPUTS  -- NONE
  122. '
  123. '  OUTPUTS -- ChatActivity$   Changed to reflect whether or not they
  124. '                              are going to chat
  125. '
  126. '  PURPOSE -- Check to see if we have been paged from another node
  127. '
  128.       SUB CBCHECK STATIC
  129.       ZOutTxt$ = ""
  130.       DoFullScreenChat = ZFalse
  131.       FileName$ = "CHAT.LOG"                                         'CHT101201
  132.       CALL FindItX (FileName$, 9)
  133.       IF ZOK THEN
  134.          ChatIndex = ZNodeRecIndex - 1
  135.          CLOSE 9
  136.          CALL OpenWrk9 (FileName$)
  137.          FIELD 9, 1 AS ChatActivity$, _
  138.                   2 AS PagingNode$,   _
  139.                   2 AS PrivateFor$,   _
  140.                  72 AS ChatInput$,    _
  141.                  10 AS ChatName$,     _
  142.                   1 AS InFullScreenChat$
  143.          CALL LockIt9 (ChatIndex, ZTrue)
  144.          IF ChatActivity$ = "R" THEN   'R means request for chat
  145.             PagerIndex = CVI(PagingNode$)
  146.             CALL RingCaller
  147.             CALL LockIt9 (PagerIndex, ZTrue)
  148.             DoFullScreenChat = (InFullScreenChat$ = "A")
  149.             CALL TrimTrail (ZOutTxt$, " ")
  150.             Index$ = MID$(STR$(PagerIndex), 2, 2)                    'CHT101401
  151.             CALL QuickTPut("Node " + Index$ + " has requested you to enter CHAT!", 1) 'CHT011402
  152.             ZOutTxt$ = "Do you plan to enter CHAT? (Y/[N])"          'CHT101201
  153.             ZSubParm = 1
  154.             CALL TGet
  155.             CALL LockIt9 (ChatIndex, ZTrue)
  156.             IF ZNo OR (ZWasQ = 0) THEN
  157.                LSET ChatActivity$ = "N"   'NO I WON'T BE CHATTING
  158.              ELSE
  159.                LSET ChatActivity$ = "Y"   'YEAH I'LL BE CHATTING
  160.                CALL QuickTPut("Type @ to enter CHAT!", 1)            'CHT101201
  161.                CALL SkipLine(1)                                      'CHT101201
  162.             END IF
  163.             IF DoFullScreenChat THEN
  164.                LSET InFullScreenChat$ = "Y"
  165.              ELSE
  166.                LSET InFullScreenChat$ = "I"
  167.             END IF
  168.             CALL LockIt9 (ChatIndex, ZFalse)
  169.             CALL UpdtCalr("Paged to CHAT by Node" + STR$(PagerIndex), 1)
  170.          END IF
  171.          CLOSE 9
  172.       END IF
  173.       END SUB
  174.  
  175. 63690 ' $SUBTITLE: 'CBCHAT - This is the actual chat code'
  176. ' $PAGE
  177. '
  178. '  NAME    -- CBCHAT
  179. '
  180. '  INPUTS  -- NODES.IN.SYSTEM
  181. '
  182. '  INTERNAL - NodesToSquelch$     STRING OF NODES NOT TO RECEIVE TEXT FROM
  183. '             HasPaged             NODE (IF ANY) THAT THIS USER PAGED
  184. '             CurrentNodeIndex    NODE RECORD IN "CHAT.LOG"
  185. '             ChatActivity$        CURRENT STATUS OF EACH NODE   (CHAT.LOG)
  186. '             PagingNode$          NODE WHICH HAS PAGED THIS ONE (CHAT.LOG)
  187. '             PrivateFor$          THIS IS TURNED ON FOR PRIVATE MSG
  188. '             ChatInput$           CURRENT TEXT INPUT BY USER FOR CHATTING
  189. '             ChatName$            NAME OF USER ON EACH NODE (NOT ALWAYS USED)
  190. '             SquelchIt            BOOLEAN - MEANS NODE IS IGNORED
  191. '             ZOutTxt$(0)                 THIS IS TEXT TYPED BY -THIS- NODE
  192. '             ZUserIn$()                  USED TO SAVE CURRENT STATUS OF EACH NODE
  193. '                                   THIS INFO IS LATER COMPARED, AND IF THAT
  194. '                                   STATUS IS CHANGED, THEN THE USER IS NOTIFIED
  195. '             ChatHold$()          USED TO SAVE CURRENT TEXT INPUT BY EACH USER
  196. '             DoFullScreenChat          MEANS OTHER USER HAS PAGED FROM TRUECH@
  197. '                                   MODE, SO CBCHAT DROPS TO 'SUB TRUECHAT'
  198. '                                   THEN EXITS AFTERWARDS.
  199. '
  200. '
  201. '  OUTPUTS -- NONE
  202. '
  203. '  PURPOSE -- To allow users to chat between nodes in several different
  204. '             ways.
  205. '
  206.       SUB CBCHAT(ZMaxnodes) STATIC
  207.  
  208. ' Change below to LogChatToDisk = ZFalse if you do not wish to record
  209.  
  210.       LogChatToDisk = ZTrue
  211.  
  212.       SavingToDisk = ZFalse
  213.       DoFullScreenChat = ZFalse
  214.       NodesToSquelch$ = ""                      'NODES TO SQUELCH (OBVIOUSLY)
  215.       HasPaged = 0
  216.       FileName$ = "CHAT.LOG"                                         'CHT101201
  217.       CALL FindItX (FileName$, 9)
  218.       IF ZOK THEN
  219.          HasPaged = 0
  220.          CurrentNodeIndex = ZNodeRecIndex - 1
  221.          CLOSE 9
  222.          CALL OpenWrk9 (FileName$)
  223.          FIELD 9, 1 AS ChatActivity$, _
  224.                   2 AS PagingNode$,   _
  225.                   2 AS PrivateFor$,   _
  226.                  72 AS ChatInput$,    _
  227.                  10 AS ChatName$,     _
  228.                   1 AS InFullScreenChat$,   _
  229.                   4 AS FullScreenChatIndex$,_
  230.                   1 AS SavingToDisk$
  231.          CALL UpdtCalr("Entered CHAT at " + TIME$, 1)
  232.          CALL SkipLine(1)
  233.          CALL QuickTPut(" Ctrl-P  Page another Node! ( Public multiple node CHAT)", 1)            'CHT101101
  234.          CALL QuickTPut(" Ctrl-W  Who is on? (List Callers on each node.)", 1)                    'CHT101201
  235.          CALL QuickTPut("  <?>    Instructions!", 1)                           'CHT101201
  236.          CALL QuickTPut(" <ESC>   Exit CHAT!", 1)                       'CHT101202
  237.          CALL SkipLine(1)                                               'CHT101201
  238.          CALL QuickTPut(" Command: Ctrl-P, Ctrl-W, ESC to Exit, ?>",2)    'CHT101202
  239.          REDIM ChatHold$(ZMaxnodes)
  240.  
  241.          CALL LockIt9 (CurrentNodeIndex, ZTrue)
  242.          DoFullScreenChat = (InFullScreenChat$ = "Y")
  243.          LSET ChatActivity$ = "A"
  244.          LSET PrivateFor$ = MKI$(0)
  245.          CALL LockIt9 (CurrentNodeIndex, ZFalse)
  246.  
  247.          FOR LineIndex = 1 TO ZMaxnodes
  248.             CALL LockIt9 (LineIndex, ZTrue)
  249.             ZUserIn$(LineIndex) = ChatActivity$
  250.          NEXT
  251.  
  252.          ReadyToEnter = ZFalse
  253.          ZAutoLogoff! = TIMER + ZWaitBeforeDisconnect
  254.  
  255.          WasA1$ = ZActiveMessageFile$
  256.          ZActiveMessageFile$ = ZOrigMsgFile$
  257.          CALL OpenMsg
  258.          FIELD 1, 128 AS ZMsgRec$
  259.  
  260.          DO
  261.  
  262.             IF DoFullScreenChat THEN
  263.                CALL FullScreenChat(CurrentNodeIndex, HasPaged, ZMaxnodes)
  264.                EXIT DO
  265.             END IF
  266.  
  267.             FOR LineIndex = 1 TO ZMaxnodes
  268.  
  269.                SquelchIt = ZFalse
  270.                IF LineIndex <> CurrentNodeIndex THEN
  271.  
  272.                   CALL LockIt9 (LineIndex, ZTrue)
  273.                   Index$ = MID$(STR$(LineIndex), 2, 2)
  274.  
  275.                   IF NodesToSquelch$ <> "" THEN
  276.                      SquelchIt = (INSTR(NodesToSquelch$, Index$) > 0)
  277.                   END IF
  278.                   IF NOT SquelchIt THEN
  279.                      SquelchIt = (InFullScreenChat$ = "A")
  280.                   END IF
  281.  
  282.                   IF HasPaged = LineIndex THEN
  283.                      IF ChatActivity$ <> "R" THEN
  284.                         IF ChatActivity$ = "N" THEN
  285.                            CALL QuickTPut("Paged user will not be entering CHAT!", 1)  'CHT101402
  286.                            HasPaged = 0
  287.                          ELSEIF ChatActivity$ = "Y" THEN
  288.                            CALL QuickTPut("Paged!  User should be entering CHAT momentarily!", 1) 'CHT101402
  289.                            HasPaged = 0
  290.                         END IF
  291.                      END IF
  292.                   END IF
  293.  
  294.                   ChatTemp$ = ""
  295.                   NameTemp$ = ""
  296.  
  297.                   IF NOT SquelchIt THEN
  298.                      IF (ZUserIn$(LineIndex) = "A") AND (ChatActivity$ = "I") THEN
  299.                         CALL QuickTPut("Node "+ Index$ + " has exited CHAT!", 1)   'CHT101201
  300.                      END IF
  301.                      IF (ZUserIn$(LineIndex) <> "A") AND (ChatActivity$ = "A") THEN
  302.                         CALL QuickTPut("Node " + Index$ + " has entered CHAT!", 1) 'CHT101201
  303.                      END IF
  304.                   END IF
  305.  
  306.                   ZUserIn$(LineIndex) = ChatActivity$
  307.  
  308.                   IF (ChatActivity$ = "A") AND (NOT SquelchIt) THEN
  309.  
  310.                      GET 1, (LineIndex + 1)
  311.                      IF MID$(MESSAGE.RECORD$, 55, 2) = "-1" AND NOT ZSysop THEN
  312.                         NameTemp$ = "SYSOP"
  313.                       ELSE
  314.                         NameTemp$ = MID$(MESSAGE.RECORD$,1,26)
  315.                      END IF
  316.  
  317.                      ChatTemp$ = ChatInput$
  318.                      CALL TrimTrail (ChatTemp$, " ")
  319.                      CALL TrimTrail (ChatHold$(LineIndex), " ")
  320.                      IF (ChatTemp$ <> ChatHold$(LineIndex)) AND ChatTemp$ <> "" THEN
  321.                         IF (CVI(PrivateFor$) = 0) OR (CVI(PrivateFor$) = CurrentNodeIndex) THEN
  322.                            CALL TrimTrail(ChatName$, " ")            'CHT101301
  323.                            ZOutTxt$ = ChatName$ + "<" + Index$ + "> " + ChatTemp$   'CHT101301
  324.                            CALL QuickTPut(ZOutTxt$, 1)
  325.                            IF LogChatToDisk AND SavingToDisk THEN
  326.                               CALL PrintWork(ZOutTxt$ + CHR$(10) + CHR$(13))
  327.                            END IF
  328.                            ChatHold$(LineIndex) = ChatTemp$
  329.                         END IF
  330.                      END IF
  331.                   END IF
  332.                END IF
  333.             NEXT
  334.  
  335.             ZOutTxt$(0) = ""                   'chat work string
  336.             ReadyToEnter = ZFalse
  337.             IF NOT ZLocalUser THEN
  338.                CALL EOFComm (ZChar%)
  339.               ELSE
  340.                ZChar% = -1
  341.             END IF
  342.             IF ZChar% <> -1 THEN          'if remote key in then get complete
  343.                CALL GetCom(Key$)
  344.              ELSE
  345.                Key$ = INKEY$             'else check for local
  346.             END IF
  347.             IF Key$ <> "" THEN
  348.                IF LEN(Key$) = 1 THEN
  349.                   IF Key$ = ZEscape$ THEN
  350.                      EXIT DO
  351.                    ELSEIF Key$ = CHR$(13) THEN
  352.                      ZOutTxt$(0) = ""
  353.                    ELSEIF Key$ = CHR$(16) THEN
  354.                      CALL PageEm(CurrentNodeIndex, HasPaged, ZMaxnodes, 0)
  355.                      IF HasPaged = -1 THEN
  356.                         EXIT DO
  357.                      END IF
  358.                      IF LogChatToDisk THEN
  359.                         ZTempTime$ = TIME$
  360.                         ZTempDate$ = DATE$
  361.                         FileName$ = LEFT$(ZTempDate$, 2) + "-" + MID$(ZTempDate$, 4, 2) + "-" + LEFT$(ZTempTime$ , 2) + ".CHT"
  362.                         CLOSE 2
  363.                         CALL OpenOutW(FileName$)
  364.                         CALL SkipLine(1)                             'CHT101201
  365.                         ZOutTxt$ = "This CHAT may be seen by your SysOp."  'CHT101201
  366.                         CALL QuickTPut1(ZOutTxt$)
  367.                         CALL LockIt9 (CurrentNodeIndex, ZTrue)
  368.                         LSET SavingToDisk$ = "Y"
  369.                         CALL LockIt9 (CurrentNodeIndex, ZFalse)
  370.                         SavingToDIsk = ZTrue
  371.                      END IF
  372.                    ELSEIF Key$ = CHR$(20) THEN
  373.                      CALL FullScreenChat(CurrentNodeIndex, HasPaged, ZMaxnodes)
  374.                      EXIT DO
  375.                    ELSEIF Key$ = CHR$(23) THEN
  376.                      CALL PageEm(CurrentNodeIndex, HasPaged, ZMaxnodes, -1)
  377.                    ELSEIF Key$ = CHR$(63) THEN
  378.                      CALL BufFile ("CHATHELP", X)
  379.                    ELSE
  380.                      ZOutTxt$(0) = Key$
  381.                      ReadyToEnter = ZTrue
  382.                   END IF
  383.                END IF
  384.             END IF
  385.             IF ReadyToEnter THEN
  386.                CALL QuickTPut("> " + ZOutTxt$(0), 0)
  387.                CALL LineEdit (0, 64)
  388.                ReadyToEnter = ZFalse
  389.                ZAutoLogoff! = TIMER + ZWaitBeforeDisconnect
  390.             END IF
  391.  
  392.             IF ZOutTxt$(0) <> "" THEN
  393.                IF LogChatToDisk AND SavingToDisk THEN
  394.                   Index$ = MID$(STR$(CurrentNodeIndex), 2, 2)
  395.                   CALL PrintWork("<" + Index$ + ">" + ZActiveUserName$ + ": " + ZOutTxt$(0) + CHR$(10) + CHR$(13))
  396.                END IF
  397.                PrivateMessage = 0
  398.                IF LEFT$(ZOutTxt$(0), 1) = "*" THEN
  399.                   PrivateMessage = VAL(MID$(ZOutTxt$(0), 2))
  400.                   IF NodesToSquelch$ <> "" THEN
  401.                      Squelched = INSTR(NodesToSquelch$, MID$(ZOutTxt$(0), 2, 1))
  402.                      IF Squelched = 1 THEN
  403.                         IF LEN(NodesToSquelch$) = 1 THEN
  404.                            NodesToSquelch$ = ""
  405.                          ELSE
  406.                            NodesToSquelch$ = MID$ (NodesToSquelch$, Squelched + 1)
  407.                         END IF
  408.                      ELSEIF Squelched > 1 THEN
  409.                         NodesToSquelch$ = LEFT$(NodesToSquelch$, Squelched - 1) + _
  410.                                             MID$ (NodesToSquelch$, Squelched + 1)
  411.                      END IF
  412.                      IF Squelched > 0 THEN
  413.                         CALL QuickTPut("Node " + ZFirstName$ + MID$(ZOutTxt$(0), 2, 1) + " has been UNsquelched!", 1)
  414.                      END IF
  415.                   END IF
  416.                   IF LEN(ZOutTxt$(0)) > 2 THEN
  417.                      ZOutTxt$(0) = MID$(ZOutTxt$(0), 3)
  418.                    ELSE
  419.                      ZOutTxt$(0) = ""
  420.                   END IF
  421.                 ELSEIF LEFT$(ZOutTxt$(0), 1) = "!" THEN
  422.                   NodesToSquelch$ = NodesToSquelch$ + MID$(ZOutTxt$(0), 2, 1)
  423.                   CALL QuickTPut("Node " + MID$(ZOutTxt$(0), 2, 1) + " has been squelched!", 1)
  424.                   IF LEN(ZOutTxt$(0)) > 2 THEN
  425.                      ZOutTxt$(0) = MID$(ZOutTxt$(0), 3)
  426.                    ELSE
  427.                      ZOutTxt$(0) = ""
  428.                   END IF
  429.                END IF
  430.                ChatHold$(CurrentNodeIndex) = ZOutTxt$(0) + SPACE$(72 - LEN(ZOutTxt$(0)))
  431.                CALL LockIt9 (CurrentNodeIndex, ZTrue)
  432.                LSET ChatInput$ = ChatHold$(CurrentNodeIndex)
  433.                IF PrivateMessage THEN
  434.                   LSET PrivateFor$ = MKI$(PrivateMessage)  'PRIVATE
  435.                 ELSE
  436.                   LSET PrivateFor$ = MKI$(0)  'PUBLIC
  437.                END IF
  438.                CALL LockIt9 (CurrentNodeIndex, ZFalse)
  439.             END IF
  440.  
  441.             CALL CheckCarrier
  442.             IF ZSubParm = -1 THEN
  443.                EXIT DO
  444.             END IF
  445.             CALL CheckTimeRemain(MinsRemaining)
  446.             IF ZSubParm = -1 THEN
  447.                EXIT DO
  448.             END IF
  449.             CALL CheckTime(ZAutoLogoff!, TempElapsed!, 1)
  450.             IF TempElapsed! <=0 THEN
  451.                ZWaitExpired = ZTrue
  452.                EXIT DO
  453.             END IF
  454.  
  455.          LOOP
  456.          CALL LockIt9 (CurrentNodeIndex, ZTrue)
  457.          LSET ChatInput$ = SPACE$(62)
  458.          LSET ChatActivity$ = "I"
  459.          CALL LockIt9 (CurrentNodeIndex, ZFalse)
  460.          CLOSE 9
  461.       END IF
  462.       CLOSE 2
  463.       ZActiveMessageFile$ = WasA1$
  464.       END SUB
  465.  
  466. 63695 ' $SUBTITLE: 'PageEm - attempt to page another user to chat'
  467. ' $PAGE
  468. '
  469. '  NAME    -- PageEm
  470. '
  471. '  INPUTS  -- SHOW.ONLY        Show whos is on the other nodes only
  472. '             ZMaxnodes  Number of nodes in this system
  473. '
  474. '  OUTPUTS -- HasPaged        -1 exit chat mode
  475. '                               0 don't check for reply to page
  476. '                               1 - ZMaxnodes check for page reply
  477. '
  478. '  PURPOSE -- Page another user on the system and set up for a reply
  479. '             from the other user
  480. '
  481.       SUB PageEm(CurrentNodeIndex, HasPaged, ZMaxnodes, ShowOnly) STATIC
  482.       CALL WhosOn (ZMaxnodes)
  483.       CALL SkipLine(1)
  484.       IF ShowOnly THEN
  485.          EXIT SUB
  486.       END IF
  487.       ZOutTxt$ = "Which Node do you wish to page (1 -" + STR$(ZMaxnodes) +")" + PRESS.ENTER$
  488.       ZSubParm = 1
  489.       CALL TGet
  490.       IF ZWasQ = 0 THEN
  491.          HasPaged = -1
  492.          EXIT SUB
  493.       END IF
  494.       CALL CheckInt(ZUserIn$(1))
  495.       FIELD 9, 1 AS ChatActivity$, _
  496.                2 AS PagingNode$,   _
  497.                2 AS PrivateFor$,   _
  498.               72 AS ChatInput$,    _
  499.               31 AS ChatName$,     _
  500.                1 AS InFullScreenChat$
  501.       IF ZTestedIntValue > 0 AND ZTestedIntValue <= ZMaxnodes AND _
  502.          ZTestedIntValue <> CurrentNodeIndex THEN
  503.          CALL SkipLine(1)                                            'CHT101201
  504.          CALL QuickTPut("Please hold, I'll inform them of your request!", 1)  'CHT101290
  505.          CALL SkipLine(1)                                            'CHT101201
  506.          CALL QuickTPut("If you don't get an answer within a couple minutes,", 1)  'CHT101201
  507.          CALL QuickTPut("they may be busy transferring a file.", 1)                'CHT101201
  508.          CALL LockIt9 (ZTestedIntValue, ZTrue)
  509.          IF ChatActivity$ = "A" THEN        'if other node already
  510.             IF InFullScreenChat$ = "A" THEN         'can't page 'em if in true chat
  511.                CALL SkipLine(1)
  512.                HasPaged = -1
  513.              ELSE
  514.                HasPaged = 0
  515.             END IF
  516.             EXIT SUB
  517.          END IF
  518.          LSET ChatActivity$ = "R"           'R means Request
  519.          LSET PagingNode$ = MKI$(CurrentNodeIndex)
  520.          HasPaged = ZTestedIntValue
  521.          CALL LockIt9 (ZTestedIntValue, ZFalse)
  522.        ELSE
  523.          HasPaged = -1
  524.       END IF
  525.       END SUB
  526. 63698 ' $SUBTITLE: 'FullScreenChat - To be added when buffering is figured out'
  527.       SUB FullScreenChat STATIC
  528.       ' I am currently working on a door for the MainFraim chat to exit to.
  529.       ' The door will be a char for char internode chat.
  530.       ' Until then Line for line chat is the best these mods do. That exit
  531.       ' Routine will go here.  - Tom Hansen
  532.       END SUB
  533.